
import org.junit.*;

public class UsuarioTest {

	Usuario usuario;
	Usuario usuario2;
	final String separador = System.getProperty("line.separator");
	
	@Before
	public void criaUsuario(){
		usuario = new Usuario();
		usuario2 = new Usuario();
	}
	
	@Test
	public void testaUsuario() throws Exception{
		Assert.assertEquals("",usuario.getNome());
		Assert.assertEquals("",usuario.getDescricao());
		Assert.assertEquals("",usuario.getEmail());
		Assert.assertEquals("Usuario: ", usuario.toString());
		Assert.assertTrue(usuario.equals(usuario2));
		
		try{
			usuario.setNome(null);
			Assert.fail();
		}catch(Exception ex){
			Assert.assertEquals("nome nulo",ex.getMessage());
		}
		try{
			usuario.setDescricao(null);
			Assert.fail();
		}catch(Exception ex){
			Assert.assertEquals("descricao nula",ex.getMessage());
		}
		try{
			usuario.setEmail(null);
			Assert.fail();
		}catch(Exception ex){
			Assert.assertEquals("email nulo",ex.getMessage());
		}
		Assert.assertTrue(usuario.equals(usuario2));
		try{
			usuario.setNome("guilherme");
			Assert.assertEquals("Usuario: guilherme", usuario.toString());
		}catch(Exception ex){
			Assert.fail();
		}
		try{
			usuario.setDescricao("homem, servo de Deus");
			Assert.assertEquals("Usuario: guilherme" + separador + "Descricao: homem, servo de Deus", usuario.toString());
		}catch(Exception ex){
			Assert.fail();
		}
		try{
			usuario.setEmail("guilherme1.0emmanuel at gmail.com");
			Assert.assertEquals("Usuario: guilherme" + separador + "Descricao: homem, servo de Deus" + separador + "Email: guilherme1.0emmanuel at gmail.com", usuario.toString());
		}catch(Exception ex){
			Assert.fail();
		}
		Assert.assertFalse(usuario.equals(usuario2));
		Assert.assertEquals("guilherme",usuario.getNome());
		Assert.assertEquals("homem, servo de Deus",usuario.getDescricao());
		Assert.assertEquals("guilherme1.0emmanuel at gmail.com",usuario.getEmail());
		
		}
	
}
